package cjakma.study.portfolio.common;


import org.springframework.http.HttpStatus;
import org.springframework.util.Assert;

import cjakma.study.portfolio.common.exception.PortfolioException;

/**
 * 
 * @author 서성수
 */
public enum PortfolioResultCode {

	/** 성공 */
	SUCCESS(000, HttpStatus.OK, "result.success")

	/*
	 * Common errors (10xx)
	 */

	/** 알수없는 에러 */
	, UNKNOWN_ERROR(801, HttpStatus.INTERNAL_SERVER_ERROR, "result.error.unknown")
	
	/** 요청 파라미터 에러 */
	, REQUEST_PARAMETER_ERROR(802, HttpStatus.BAD_REQUEST, "result.error.request.parameter")
	
	/** 데이타베이스 에러 */
	, DATABASE_ERROR(803, HttpStatus.INTERNAL_SERVER_ERROR, "result.error.database")
	
	/** 요청 에러 */
	, REQUEST_ERROR(804, HttpStatus.BAD_REQUEST, "result.error.request")
	
	/** 404 Not Found 에러 */
	, NOT_FOUND_ERROR(805, HttpStatus.NOT_FOUND, "result.error.notFound")
	
//	
//	/** 알수없는 에러 */
//	, UNKNOWN_ERROR(1000, HttpStatus.INTERNAL_SERVER_ERROR, "result.error.unknown")
//
//	/** 404 Not Found 에러 */
//	, NOT_FOUND_ERROR(1001, HttpStatus.NOT_FOUND, "result.error.notFound")
//	
//	/** 요청 에러 */
//	, REQUEST_ERROR(1002, HttpStatus.BAD_REQUEST, "result.error.request")
//
//	/** 요청 파라미터 에러 */
//	, REQUEST_PARAMETER_ERROR(1003, HttpStatus.BAD_REQUEST, "result.error.request.parameter")
//
//	/** 데이타베이스 에러 */
//	, DATABASE_ERROR(1004, HttpStatus.INTERNAL_SERVER_ERROR, "result.error.database")
//
//	/** 허용되지 않은 접근 IP 입니다. */
//	, INVALID_REQUEST_IP_ERROR(1007, HttpStatus.BAD_REQUEST, "result.error.invalidIp")
//
//	/*
//	 * Common data check
//	 */
//
//	, COMMON_NO_DATA_LIST(1200, HttpStatus.OK, "common.noList"), COMMON_NO_DATA_INFO(1201, HttpStatus.OK, "common.noData")
//
//	/*
//	 * User & Login errors (2000 ~ 2999)
//	 */
//
//	/**
//	 * 로그인 토큰정보 없음
//	 */
//	, USER_NO_TOKEN_INFO(2001, HttpStatus.OK, "user.login.notoken")
//
//	/**
//	 * 비밀번호 불일치
//	 */
//	, USER_WRONG_PASSWD(2002, HttpStatus.OK, "user.login.wrongpw")
//
//	/**
//	 * 디바이스 아이디 미존재
//	 */
//	, USER_NO_DEVICE_ID(2003, HttpStatus.OK, "user.login.nodevi")
//
//	/**
//	 * 삭제된(탈퇴한) 아이디
//	 */
//	, USER_DELETED_ID(2004, HttpStatus.OK, "user.login.delid")
//
//	/**
//	 * 아이디 미존재
//	 */
//	, USER_NO_USER_ID(2005, HttpStatus.OK, "user.login.noid")
//
//	/**
//	 * 비밀번호 미존재
//	 */
//	, USER_NO_USER_PW(2006, HttpStatus.OK, "user.login.nopw")
//
//	/**
//	 * 사용자 이름 미존재
//	 */
//	, USER_NO_USER_NM(2007, HttpStatus.OK, "user.login.nonm")
//
//	/**
//	 * 이미 등록된 사용자
//	 */
//	, USER_ALREADY_USER(2010, HttpStatus.OK, "user.login.already.user")
//
//	/**
//	 * 이미 존재하는 ID
//	 */
//	, USER_ALREADY_ID(2011, HttpStatus.OK, "user.login.already.id")
//
//	/**
//	 * 이미 존재하는 전화번호
//	 */
//	, USER_ALREADY_MOBP(2012, HttpStatus.OK, "user.login.already.mobp")
//
//	/**
//	 * 이미 존재하는 이메일
//	 */
//	, USER_ALREADY_EMAIL(2013, HttpStatus.OK, "user.login.already.email")
//
//	/**
//	 * 회원가입시 등록된 단말인증번호와 다릅니다.[{0}]
//	 */
//	, USER_WRONG_DEVICE_ID(2015, HttpStatus.OK, "user.login.wrongdevi")
//
//	/**
//	 * 등록된 ID가 없음
//	 */
//	, USER_NO_REGD_ID(2016, HttpStatus.OK, "user.no.registered.id")
//
//	/**
//	 * 기존 비밀번호를 입력하세요.
//	 */
//	, USER_CONFIRM_OLD_PASSWD(2019, HttpStatus.OK, "user.confirm.oldpasswd")
//
//	/**
//	 * 새 비밀번호를 입력하세요.
//	 */
//	, USER_CONFIRM_NEW_PASSWD(2020, HttpStatus.OK, "user.confirm.newpasswd")
//
//	/**
//	 * 아이디가 없거나 비밀번호가 다릅니다.
//	 */
//	, USER_NO_ID_OR_WRONG_PW(2022, HttpStatus.OK, "user.no.id.or.wrong.pw")
//
//	/**
//	 * 본인의 정보는 조회할 수 없습니다.
//	 */
//	, USER_CANT_SHOW_MYSELF_INFO(2023, HttpStatus.OK, "user.cannot.show.self.info")
//
//	/**
//	 * 웹에서 가입한 회원입니다.
//	 */
//	, USER_WEB_JOIN_USER(2024, HttpStatus.OK, "user.web.join.user")
//
//	/**
//	 * 약관정보 일련번호가 없습니다.
//	 */
//	, USER_CONFIRM_CLUS_SEQ(2026, HttpStatus.OK, "user.confirm.clus.seq")
//
//	/**
//	 * 이용약관정보 구분코드가 없습니다.
//	 */
//	, USER_CONFIRM_CLUS_DIV(2027, HttpStatus.OK, "user.confirm.clus.div")
//
//	/**
//	 * 공지사항 일련번호가 없습니다.
//	 */
//	, USER_CONFIRM_ALERT_SEQ(2028, HttpStatus.OK, "user.confirm.alert.seq")
//
//	/**
//	 * ID 길이가 1자 이하, 또는 16자 이상입니다.
//	 */
//	, USER_ID_LENGTH_EXCEED(2029, HttpStatus.OK, "user.id.length.exceed")
//
//	/**
//	 * 전화번호 형식이 맞지 않습니다.
//	 */
//	, USER_PHONE_FORM_INVALID(2031, HttpStatus.OK, "user.phone.form.invalid")
//
//	/**
//	 * 프로그램 버전 정보가 없습니다.
//	 */
//	, USER_NO_VERS_INFO(2033, HttpStatus.OK, "user.no.vers.info")
//
//	/**
//	 * 성별은 'M'과 'F'만 가능합니다.
//	 */
//	, USER_INVALID_USER_SEX(2034, HttpStatus.OK, "user.invalid.user.sex")
//
//	/**
//	 * 생년월일 형식이 맞지 않습니다.
//	 */
//	, USER_INVALID_USER_BIRTH(2035, HttpStatus.OK, "user.invalid.user.birth")
//
//	/**
//	 * 개인정보 일련번호가 없습니다.
//	 */
//	, USER_CONFIRM_INDT_SEQ(2036, HttpStatus.OK, "user.confirm.indt.seq")
//
//	/**
//	 * 사용자 아이디에는 공백이 포함될 수 없습니다.
//	 */
//	, USER_INVALID_USER_ID(2037, HttpStatus.OK, "user.invalid.user.id")
//
//	/**
//	 * PW 길이가 6자 이하, 또는 15자 이상입니다.
//	 */
//	, USER_PW_LENGTH_EXCEED(2038, HttpStatus.OK, "user.pw.length.exceed")
//
//	/**
//	 * 최종 공지사항 일련번호(lastAlertSeq)가 없습니다. 확인해주세요.
//	 */
//	, USER_CONFIRM_LAST_ALERT_SEQ(2039, HttpStatus.OK, "user.confirm.last.alert.seq")
//
//	/**
//	 * 모임장인 모임이 있습니다.
//	 */
//	, USER_CHIEF_OF_MEETING(2040, HttpStatus.OK, "user.chief.of.meeting")
//
//	/**
//	 * PNS TOKEN(pnsToken) 값이 없습니다.
//	 */
//	, USER_REQ_NO_PNS_TOKEN(2041, HttpStatus.OK, "user.req.no.pns.token")
//
//	/**
//	 * 등록할 수 없는 아이디입니다.
//	 */
//	, USER_EXIST_RESERVED_ID(2042, HttpStatus.OK, "user.exist.reserved.id")
//
//	/**
//	 * 이메일 주소에는 공백이 포함될 수 없습니다.
//	 */
//	, USER_INVALID_USER_EMAIL(2043, HttpStatus.OK, "user.invalid.user.email")
//
//	/**
//	 * appdemo용 단말인증번호가 아닙니다.
//	 */
//	, USER_NOT_APP_DEVICE_ID(2044, HttpStatus.OK, "user.login.not.appdemo.devi")
//
//	/**
//	 * 아이디, 비밀번호를 다시 한번 확인해 주세요.
//	 */
//	, USER_CONFIRM_ID_PW(2045, HttpStatus.OK, "user.confirm.id.pw")
//
//	/**
//	 * 조건에 맞는 추천 친구가 존재하지 않습니다.
//	 */
//	, USER_NOT_EXIST_RCMD_USER(2046, HttpStatus.OK, "user.not.exist.rcmd.user")
//
//	/**
//	 * 추천 친구 조회 요청 Term이 지나지 않았습니다.
//	 */
//	, USER_NOT_OVER_RCMD_USER_REQ_TERM(2047, HttpStatus.OK, "user.not.over.rcmd.user.req.term")
//
//	/**
//	 * 가입할 수 없는 전화번호입니다.
//	 */
//	, JOIN_BLOCKED_MOBP(2048, HttpStatus.OK, "user.join.blocked.mobp")
//	
//	/**
//	 * 2012.01.02 by sss 상대방을 구독차단 했을때  "이야기가 없습니다" 출력
//	 */
//	, USER_NO_READ_STATUS(2049, HttpStatus.OK, "user.blocked.relation")
//
//	/**
//	 * SMS 인증번호 미존재
//	 */
//	, USER_SMS_CERT_NO_NOT_EXIST(2050, HttpStatus.OK, "user.not.exist.smsCertNo")
//	
//	/**
//	 * 가상 전화번호 입력이 실패하였습니다.
//	 */
//	, USER_VIRTUAL_CTN_INSERT_ERROR(2050, HttpStatus.OK, "user.virtual.ctn.not.insert")
//	
//	/**
//	 * 사용자 정보 업데이트에 실패하였습니다.
//	 */
//	, USER_INFORMATION_UPDATE_ERROR(2050, HttpStatus.OK, "user.info.update.error")
//	
//	/*
//	 * Address errors - Friend (3000 ~ 3999)
//	 */
//
//	/**
//	 * 자신과 동일한 번호 업로드 에러
//	 */
//	, FRIEND_NOT_PERMIT_SAME_NOMBER(3101, HttpStatus.OK, "friend.error.same.nomber")
//
//	/**
//	 * 주소록 테이블에서 업로드된 주소록과 동일한 데이타 삭제실패
//	 */
//	, FRIEND_FAIL_DATE_DELETE_REQUEST(3102, HttpStatus.INTERNAL_SERVER_ERROR, "friend.error.delete.data")
//
//	/**
//	 * 주소록 테이블에 데이타 입력 실패
//	 */
//	, FRIEND_FAIL_DATE_INSERT_REQUEST(3103, HttpStatus.INTERNAL_SERVER_ERROR, "friend.error.insert.data")
//
//	/**
//	 * 사용자별 임시테이블 데이타 삭제 실패
//	 */
//	, FRIEND_FAIL_TEMP_INSERT_REQUEST(3104, HttpStatus.INTERNAL_SERVER_ERROR, "friend.error.insert.temp")
//
//	/**
//	 * 와글추천친구 임시테이블에 기록실패
//	 */
//	, FRIEND_FAIL_TEMP_INSERT_RECOMMAND(3105, HttpStatus.INTERNAL_SERVER_ERROR, "friend.error.insert.recommand")
//
//	/**
//	 * 자동맞팔실패
//	 */
//	, FRIEND_FAIL_TO_CONNECT_RELATION(3106, HttpStatus.INTERNAL_SERVER_ERROR, "friend.error.connect.relation")
//
//	/**
//	 * 팔로우테이블에 기록실패
//	 */
//	, FRIEND_FAIL_INSERT_FOLLOW_RELATION(3107, HttpStatus.INTERNAL_SERVER_ERROR, "friend.error.follow.relation")
//
//	/**
//	 * 관계정보 인증 에러 Relation Unauthorized error (친구가 아닙니다)
//	 */
//	, FRIEND_RELATION_NOT_EXIST(3200, HttpStatus.OK, "friend.error.relation.notExist")
//
//	/**
//	 * DB 조회
//	 */
//	, FRIEND_FAIL_TO_SEARCH_DB(3201, HttpStatus.INTERNAL_SERVER_ERROR, "friend.error.search.database")
//
//	/**
//	 * 조회
//	 */
//	, FRIEND_FAIL_TO_SEARCH_FRIEND(3202, HttpStatus.INTERNAL_SERVER_ERROR, "friend.error.search.friend")
//
//	/**
//	 * 형식에 맞지 않는 검색어
//	 */
//	, FRIEND_NOT_PERMIT_SEARCH_WORD(3301, HttpStatus.OK, "friend.error.search.word")
//
//	/**
//	 * 기록실패
//	 */
//	, FRIEND_FAIL_TO_INSERT_DATA(3401, HttpStatus.INTERNAL_SERVER_ERROR, "friend.error.insert.database")
//
//	/**
//	 * flag 변경 실패
//	 */
//	, FRIEND_FAIL_TO_UPDATE_FLAG(3402, HttpStatus.INTERNAL_SERVER_ERROR, "friend.error.update.flag")
//
//	/**
//	 * 동일한 사용자
//	 */
//	, FRIEND_NOT_PERMIT_SAME_USER(3501, HttpStatus.OK, "friend.error.same.user")
//
//	/**
//	 * 현재 상태와 동일합니다.
//	 */
//	, FRIEND_NOT_PERMIT_USER_STATUS(3502, HttpStatus.OK, "friend.error.same.status")
//
//	/**
//	 * 사용할수 있는 전화번호가 없다.
//	 */
//	, FRIEND_NOTHING_TO_USE_DATA(3999, HttpStatus.OK, "friend.error.nothing.to.use")
//
//	/**
//	 * 처리가 아직 끝나지 않았다. 잠시만 기다려 달라.
//	 */
//	, FRIEND_TIME_LIMIT(3888, HttpStatus.OK, "friend.error.time.limit")
//	
//	/**
//	 * 친구관계를 비공개로 한 유저입니다.
//	 */
//	, FRIEND_LIST_NOT_OPEN(3503, HttpStatus.OK, "friend.list.not.open")
//
//	/*
//	 * Statuses errors (4000 ~ 4999)
//	 */
//
//	/** 이야기 글 정보 찾기 실패. */
//	, STATUSES_CONTENT_NOT_FOUND(4001, HttpStatus.OK, "statuses.error.contentNotFound")
//
//	/** 이야기 상위 글 정보 찾기 실패. */
//	, STATUSES_PARENT_CONTENT_NOT_FOUND(4002, HttpStatus.OK, "statuses.error.parentContentNotFound")
//
//	/** 이야기 원 글 정보 찾기 실패. */
//	, STATUSES_ORIGINAL_CONTENT_NOT_FOUND(4003, HttpStatus.OK, "statuses.error.originalContentNotFound")
//
//	/** 쪽지 대상자 찾기 실패. */
//	, STATUSES_MESSAGE_TARGET_NOT_FOUND(4004, HttpStatus.OK, "statuses.error.messageTargetNotFound")
//
//	/** 이야기 조회 에러. */
//	, STATUSES_MY_TIMELINE_ALL_ERROR(4101, HttpStatus.INTERNAL_SERVER_ERROR, "statuses.error.myTimelineAll")
//
//	/** 내 이야기 조회 에러. */
//	, STATUSES_MY_TIMELINE_ME_ERROR(4102, HttpStatus.INTERNAL_SERVER_ERROR, "statuses.error.myTimelineMe")
//
//	/** 유저 이야기 조회 에러. */
//	, STATUSES_USER_TIMELINE_ERROR(4103, HttpStatus.INTERNAL_SERVER_ERROR, "statuses.error.userTimeline")
//
//	/** 여기 이야기 조회 에러. */
//	, STATUSES_AREA_TIMELINE_ERROR(4104, HttpStatus.INTERNAL_SERVER_ERROR, "statuses.error.areaTimeline")
//
//	/** 즐겨찾기 이야기 조회 에러. */
//	, STATUSES_FAVORITES_ERROR(4105, HttpStatus.INTERNAL_SERVER_ERROR, "statuses.error.favorites")
//
//	/** 이야기 상세 보기 에러. */
//	, STATUSES_SHOW_ERROR(4106, HttpStatus.INTERNAL_SERVER_ERROR, "statuses.error.show")
//
//	/** 이야기 댓글 리스트 조회 에러. */
//	, STATUSES_COMMENTS_ERROR(4107, HttpStatus.INTERNAL_SERVER_ERROR, "statuses.error.comments")
//
//	/** 이야기 삭제 에러. */
//	, STATUSES_DESTROY_ERROR(4108, HttpStatus.INTERNAL_SERVER_ERROR, "statuses.error.destroy")
//
//	/** 이야기 글 작성 에러. */
//	, STATUSES_UPDATE_ERROR(4109, HttpStatus.INTERNAL_SERVER_ERROR, "statuses.error.update")
//
//	/** 이야기 글 전파 에러. */
//	, STATUSES_RETWEET_ERROR(4110, HttpStatus.INTERNAL_SERVER_ERROR, "statuses.error.retweet")
//
//	/** 이야기 쪽지 작성 에러. */
//	, STATUSES_MESSAGE_ERROR(4111, HttpStatus.INTERNAL_SERVER_ERROR, "statuses.error.message")
//
//	/** 이야기 즐겨찾기 에러. */
//	, STATUSES_FAVORITE_ERROR(4112, HttpStatus.INTERNAL_SERVER_ERROR, "statuses.error.favorite")
//
//	/** 읽지 않은 이야기 카운트 조회 에러. */
//	, STATUSES_UNREAD_COUNT_ALL_ERROR(4113, HttpStatus.INTERNAL_SERVER_ERROR, "statuses.error.unreadCountAll")
//
//	/** 읽지 않은 내 이야기 카운트 조회 에러. */
//	, STATUSES_UNREAD_COUNT_ME_ERROR(4114, HttpStatus.INTERNAL_SERVER_ERROR, "statuses.error.unreadCountMe")
//
//	/** 이야기 쪽지 버젼 오류. */
//	, STATUSES_MESSAGE_VERSION_ERROR(4115, HttpStatus.INTERNAL_SERVER_ERROR, "statuses.error.message.version")
//
//	/*
//	 * Meeting errors (5000 ~ 5999)
//	 */
//	
//	/** 카테고리 유효값 오류 */
//	, MEETING_CATEGORY_INVALID(5000, HttpStatus.OK, "meeting.invalid.category")
//	
//	/** 카테고리 목록 조회 에러 */
//	, MEETING_CATEGORY_ERROR(5001, HttpStatus.INTERNAL_SERVER_ERROR, "meeting.error.category")
//
//	/** 모임 글 매핑 파일 정보 생성 에러 */
//	, MEETING_STORY_FILE_MAKE_ERROR(5002, HttpStatus.INTERNAL_SERVER_ERROR, "meeting.error.file.make")
//
//	/** 모임 글 매핑 파일 목록 조회 에러 */
//	, MEETING_STORY_FILE_INQUIRY_ERROR(5003, HttpStatus.INTERNAL_SERVER_ERROR, "meeting.error.file.Inquiry")
//
//	/** 모임 글 매핑 파일 삭제 에러 */
//	, MEETING_STORY_FILE_DELETE_ERROR(5004, HttpStatus.INTERNAL_SERVER_ERROR, "meeting.error.file.delete")
//
//	/** 내 모임 목록 조회 에러 */
//	, MEETING_MY_INQUIRY_ERROR(5101, HttpStatus.INTERNAL_SERVER_ERROR, "meeting.error.my")
//
//	/** 사용자 모임 목록 조회 에러 */
//	, MEETING_USER_INQUIRY_ERROR(5102, HttpStatus.INTERNAL_SERVER_ERROR, "meeting.error.user")
//
//	/** 정렬별, 모임 검색 조회 에러 */
//	, MEETING_SEARCH_INQUIRY_ERROR(5103, HttpStatus.INTERNAL_SERVER_ERROR, "meeting.error.search")
//
//	/** 모임 상세 조회 에러 */
//	, MEETING_DETAIL_INQUIRY_ERROR(5104, HttpStatus.INTERNAL_SERVER_ERROR, "meeting.error.detail")
//
//	/** 모임 공개 체크 에러 */
//	, MEETING_OPENTYPE_ERROR(5105, HttpStatus.BAD_REQUEST, "meeting.error.opentype.check")
//
//	/** 모임 공개 조회 에러 */
//	, MEETING_OPENTYPE_INQUIRY_ERROR(5106, HttpStatus.INTERNAL_SERVER_ERROR, "meeting.error.opentype.inquiry")
//
//	/** 추천 모임 여부 조회 에러 */
//	, MEETING_RECOMMEND_INQUIRY_ERROR(5107, HttpStatus.INTERNAL_SERVER_ERROR, "meeting.error.recommend.inquiry")
//
//	/** 추천 모임 여부 에러 */
//	, MEETING_RECOMMEND_ERROR(5108, HttpStatus.BAD_REQUEST, "meeting.error.recommend.check")
//
//	/** 추천 모임 삭제 중복 에러 */
//	, MEETING_RECOMMEND_MEMBER_DUPLI_ERROR(5109, HttpStatus.BAD_REQUEST, "meeting.error.recommend.member")
//
//	/** 모임 찾기 실패 */
//	, MEETING_NOT_FOUND(5110, HttpStatus.OK, "meeting.error.meetingNotFound")
//
//	/** 모임 생성 에러 */
//	, MEETING_MAKE_ERROR(5201, HttpStatus.INTERNAL_SERVER_ERROR, "meeting.error.make")
//
//	/** 모임 수정 에러 */
//	, MEETING_UPDATE_ERROR(5202, HttpStatus.INTERNAL_SERVER_ERROR, "meeting.error.update")
//
//	/** 추천 모임 삭제 정보 삭제 에러 */
//	, MEETING_RECOMMEND_DELETE_ERROR(5203, HttpStatus.INTERNAL_SERVER_ERROR, "meeting.error.recommend.delete")
//
//	/** 모임 삭제 에러 */
//	, MEETING_DELETE_ERROR(5204, HttpStatus.INTERNAL_SERVER_ERROR, "meeting.error.delete")
//
//	/** 모임 장 수정 에러 */
//	, MEETING_UPDATE_MASTER_ERROR(5205, HttpStatus.INTERNAL_SERVER_ERROR, "meeting.error.master.update")
//
//	/** 모임 원 조회 에러 */
//	, MEETING_MEMBER_INQUIRY_ERROR(5401, HttpStatus.INTERNAL_SERVER_ERROR, "meeting.error.member.inquiry")
//
//	/** 모임 장 여부 에러 */
//	, MEETING_MASTER_ERROR(5402, HttpStatus.OK, "meeting.error.master")
//
//	/** 모임 원 여부 에러 */
//	, MEETING_MEMBER_ERROR(5403, HttpStatus.OK, "meeting.error.member")
//
//	/** 모임 원 존재 조회 에러 */
//	, MEETING_MEMBER_EXISTS_INQUIRY_ERROR(5404, HttpStatus.INTERNAL_SERVER_ERROR, "meeting.error.member.exists.inquiry")
//
//	/** 초대 가능 친구 조회 에러 */
//	, MEETING_MEMBER_INVITE_INQUIRY_ERROR(5405, HttpStatus.INTERNAL_SERVER_ERROR, "meeting.error.member.invite")
//
//	/** 강퇴 회원 에러 */
//	, MEETING_MEMBER_SECEDE_ERROR(5406, HttpStatus.OK, "meeting.error.member.secede")
//
//	/** 모임 원 여부 조회 에러 */
//	, MEETING_MEMBER_CHECK_INQUIRY_ERROR(5407, HttpStatus.INTERNAL_SERVER_ERROR, "meeting.error.member.check")
//
//	/** 모임 장 여부 조회 에러 */
//	, MEETING_MASTER_INQUIRY_ERROR(5408, HttpStatus.INTERNAL_SERVER_ERROR, "meeting.error.master.inquiry")
//
//	/** 모임 초대 설정 에러 */
//	, MEETING_INVITE_CHECK_ERROR(5409, HttpStatus.INTERNAL_SERVER_ERROR, "meeting.error.invite.check")
//
//	/** 팔로우 관계 조회 에러 */
//	, FRIENDS_RELATION_INQUIRY_ERROR(5410, HttpStatus.INTERNAL_SERVER_ERROR, "meeting.error.relation")
//
//	/** 강퇴 회원 조회 에러 */
//	, MEETING_MEMBER_SECEDE_INQUIRY_ERROR(5411, HttpStatus.INTERNAL_SERVER_ERROR, "meeting.error.member.secede.inquiry")
//
//	/** 모임 원 존재 에러 */
//	, MEETING_MEMBER_EXISTS_ERROR(5412, HttpStatus.OK, "meeting.error.member.exists")
//
//	/** 모임 원 생성 에러 */
//	, MEETING_MEMBER_MAKE_ERROR(5501, HttpStatus.INTERNAL_SERVER_ERROR, "meeting.error.member.make")
//
//	/** 모임 알림 수정 에러 */
//	, MEETING_MEMBER_ALARM_UPDATE_ERROR(5502, HttpStatus.INTERNAL_SERVER_ERROR, "meeting.error.member.alarm")
//
//	/** 추천 모임 삭제 사용자 매핑 정보 삭제 에러 */
//	, MEETING_MEMBER_RECOMMEND_DELETE_ERROR(5503, HttpStatus.INTERNAL_SERVER_ERROR, "meeting.error.member.recommend.delete")
//
//	/** 모임 원 삭제 에러 */
//	, MEETING_MEMBER_DELETE_ERROR(5504, HttpStatus.INTERNAL_SERVER_ERROR, "meeting.error.member.delete")
//
//	/** 추천 모임 삭제 생성 에러 */
//	, MEETING_MEMBER_RECOMMEND_MAKE_ERROR(5505, HttpStatus.INTERNAL_SERVER_ERROR, "meeting.error.member.recommend.make")
//
//	/** 모임 원 수정 에러 */
//	, MEETING_MEMBER_UPDATE_ERROR(5506, HttpStatus.INTERNAL_SERVER_ERROR, "meeting.error.member.update")
//
//	/** 모임 원 모두 따르기 에러 */
//	, MEETING_MEMBER_ALL_FOLLOW_ERROR(5507, HttpStatus.INTERNAL_SERVER_ERROR, "meeting.error.member.all.follow")
//
//	/** 모임 원 모두 따르기 정보 조회 */
//	, MEETING_MEMBER_ALL_FOLLOW_INFO_INQUIRY_ERROR(5508, HttpStatus.INTERNAL_SERVER_ERROR, "meeting.error.member.all.follow.info.inquiry")
//
//	/** 모임 글 조회 에러 */
//	, MEETING_STORY_ERROR(5701, HttpStatus.INTERNAL_SERVER_ERROR, "meeting.error.story")
//
//	/** 모임 글 상세 조회 에러 */
//	, MEETING_STORY_DETAIL_ERROR(5702, HttpStatus.INTERNAL_SERVER_ERROR, "meeting.error.story.detail")
//
//	/** 자신글 여부 조회 에러 */
//	, MEETING_MY_STORY_ERROR(5703, HttpStatus.INTERNAL_SERVER_ERROR, "meeting.error.story.my")
//
//	/** 자신글 여부 에러 */
//	, MEETING_MY_STORY_CHECK_ERROR(5704, HttpStatus.OK, "meeting.error.story.check")
//
//	/** 모임 글 생성 에러 */
//	, MEETING_STORY_MAKE_ERROR(5801, HttpStatus.INTERNAL_SERVER_ERROR, "meeting.error.story.make")
//
//	/** 모임 글 삭제 에러 */
//	, MEETING_STORY_DELETE_ERROR(5802, HttpStatus.INTERNAL_SERVER_ERROR, "meeting.error.story.delete")
//
//	/** 모임 글 조회 싱크 수정 에러 */
//	, MEETING_STORY_SYNC_ERROR(5803, HttpStatus.INTERNAL_SERVER_ERROR, "meeting.error.story.sync")
//
//	/** 새글 총 건수 조회 에러 */
//	, MEETING_STORY_BADGE_ERROR(5804, HttpStatus.INTERNAL_SERVER_ERROR, "meeting.error.story.badge")
//
//	/** 모임글 댓글 목록 */
//	, MEETING_STORY_REPLYLIST31_ERROR(5805, HttpStatus.INTERNAL_SERVER_ERROR, "meeting.error.story.replylist")
//
//	/** 모임글 이야기글로 전파 */
//	, MEETING_STORY_RETWEET_ERROR(5806, HttpStatus.INTERNAL_SERVER_ERROR, "meeting.error.story.retweet")
//
//	/** 머리말 삭제 에러 */
//	, MEETING_STORY_LEAD_DELETE_ERROR(5901, HttpStatus.INTERNAL_SERVER_ERROR, "meeting.error.story.lead.delete")
//
//	/** 머리말 생성 에러 */
//	, MEETING_STORY_LEAD_MAKE_ERROR(5902, HttpStatus.INTERNAL_SERVER_ERROR, "meeting.error.story.lead.make")
//
//	/** 2011.11.05 by sss 정렬별 모임 목록(초기 화면) (3.1용) */
//	, MEETING_PRAMETER_NOT_EXIST(5509, HttpStatus.OK, "meeting.param.not.exist")
//	
//	
//	/*
//	 * Madang errors (6000 ~ 6199)
//	 */
//
//	/** 마당 유저 찾기 실패 에러. */
//	, MADANG_USER_NOT_FOUND(6001, HttpStatus.INTERNAL_SERVER_ERROR, "madang.error.userNotFound")
//
//	/** 마당 로그인 에러. */
//	, MADANG_LOGIN_ERROR(6101, HttpStatus.INTERNAL_SERVER_ERROR, "madang.error.login")
//
//	/** 마당 친구 이야기 조회 에러. */
//	, MADANG_FRIENDS_TIMELINE_ERROR(6102, HttpStatus.INTERNAL_SERVER_ERROR, "madang.error.friendsTimeline")
//
//	/** 마당 이야기 상세 보기 에러. */
//	, MADANG_SHOW_ERROR(6103, HttpStatus.INTERNAL_SERVER_ERROR, "madang.error.show")
//
//	/** 마당 이야기 댓글 리스트 조회 에러. */
//	, MADANG_COMMENTS_ERROR(6104, HttpStatus.INTERNAL_SERVER_ERROR, "madang.error.comments")
//
//	/*
//	 * Etc errors (7000 ~ 7099)
//	 */
//
//	/** 도움말 조회 에러 */
//	, ETC_HELP_ERROR(7001, HttpStatus.INTERNAL_SERVER_ERROR, "etc.error.help")
//
//	/** Sns 연동 존재 여부 조회 에러 */
//	, ETC_SNS_EXISTS_ERROR(7002, HttpStatus.INTERNAL_SERVER_ERROR, "etc.error.sns.exists")
//
//	/** Sns 연동 중복 에러 */
//	, ETC_SNS_DUPLI_ERROR(7003, HttpStatus.INTERNAL_SERVER_ERROR, "etc.error.sns.dupli")
//
//	/** Sns 연동 생성 에러 */
//	, ETC_SNS_MAKE_ERROR(7004, HttpStatus.INTERNAL_SERVER_ERROR, "etc.error.sns.make")
//
//	/** Sns 연동 수정 에러 */
//	, ETC_SNS_UPDATE_ERROR(7005, HttpStatus.INTERNAL_SERVER_ERROR, "etc.error.sns.update")
//	
//	/** 스케쥴러 필수값 여부 에러 */
//	, ETC_SCHEDULER_PARAM_ERROR(7006, HttpStatus.OK, "etc.error.scheduler.parameter")
//
//	/** 서드파티 생성 필수값 존재 여부  */
//	, ETC_THRD_ID_EXISTS_ERROR(7007, HttpStatus.OK, "etc.error.thrd.id.exists")
//	
//	/** 서드파티 생성 THRD_ID 정합성 */
//	, ETC_THRD_ID_INVALID(7008, HttpStatus.OK, "etc.invalid.thrd.id")
//
//	/** 서드파티 생성 THRD_ID 정합성 - 길이 */
//	, ETC_THRD_ID_INVALID_LENGTH(7009, HttpStatus.OK, "etc.invalid.thrd.id.length")
//
//	/** 서드파티 생성 EMAIL 정합성 */
//	, ETC_THRD_EMAIL_INVALID(7010, HttpStatus.OK, "etc.invalid.thrd.email")
//
//	/** 서드파티 생성 PHONE 정합성 */
//	, ETC_THRD_PHONE_INVALID(7011, HttpStatus.OK, "etc.invalid.thrd.phone")
//
//	/** 서드파티 생성 ID/PW 인증 */
//	, ETC_THRD_ID_PW_CONFIRM(7012, HttpStatus.OK, "etc.confirm.thrd.id.pw")
//	
//	/** 서드파티 생성 APP_VERS 정합성 - 길이 */
//	, ETC_THRD_APP_VERS_INVALID_LENGTH(7013, HttpStatus.OK, "etc.invalid.thrd.app.vers.length")
//	
//
//	/*
//	 * Note(쪽지) errors (7400 ~7499)
//	 */
//
//	/** 4.10.1 쪽지 차단 친구 리스트 에러 */
//	, NOTE_MY_GET_BLOCK_USER_LIST_ERROR(7401, HttpStatus.BAD_REQUEST, "note.error.controller.getBlockUserList")
//
//	/** 4.10.2 쪽지 차단 칙구 리스트 - 차단 해제 */
//	, NOTE_MY_UNBLOCK_USER_LIST_ERROR(7402, HttpStatus.BAD_REQUEST, "note.error.controller.unblockUserList")
//
//	/** 4.10.3 쪽지함 목록 삭제 */
//	, NOTE_MY_DELETE_MBOX_LIST_ERROR(7403, HttpStatus.BAD_REQUEST, "note.error.controller.deleteMboxList")
//
//	/** 4.10.4 쪽지함 목록에 있는 사용자 차단 처리 */
//	, NOTE_MY_BLOCK_MBOX_LIST_ERROR(7404, HttpStatus.BAD_REQUEST, "note.error.controller.blockMboxList")
//
//	/** 4.10.5 신규 쪽지함 생성 */
//	, NOTE_MY_GET_NEW_MBOX_ERROR(7405, HttpStatus.BAD_REQUEST, "note.error.controller.getNewMbox")
//
//	/** 4.10.6 쪽지 등록(쪽지함) */
//	, NOTE_MY_WRITE_NOTE_ERROR(7406, HttpStatus.BAD_REQUEST, "note.error.controller.writeNote")
//
//	/** 4.10.7 신규 쪽지함 목록 */
//	, NOTE_MY_GET_NEW_MBOX_LIST_ERROR(7407, HttpStatus.BAD_REQUEST, "note.error.controller.getNewMboxList")
//
//	/** 4.10.8 신규 쪽지 목록 */
//	, NOTE_MY_GET_NEW_NOTE_LIST_ERROR(7408, HttpStatus.BAD_REQUEST, "note.error.controller.getNewNoteList")
//
//	/** 4.10.9 쪽지 목록 수신 완료 처리 */
//	, NOTE_MY_UPDATE_RCVD_NOTE_LIST_ERROR(7409, HttpStatus.BAD_REQUEST, "note.error.controller.updateRcvdNoteList")
//
//	/** 4.10.10 쪽지 수신 차단 조회 */
//	, NOTE_SET_SHOW_ERROR(7410, HttpStatus.BAD_REQUEST, "note.error.controller.showSetting")
//
//	/** 4.10.11 쪽지 수신 차단 변경 */
//	, NOTE_SET_UPDATE_ERROR(7411, HttpStatus.BAD_REQUEST, "note.error.controller.updateSetting")
//
//	/** 4.10.5, 4.10.6 쪽지 수신대상 탈퇴 */
//	, NOTE_NO_RCVR_ERROR(7451, HttpStatus.BAD_REQUEST, "note.error.service.no_rcvr")
//
//	/** 4.10.12 사용자 목록 차단 처리 */
//	, NOTE_MY_BLOCK_USER_LIST_ERROR(7412, HttpStatus.BAD_REQUEST, "note.error.controller.blockUserList")
//
//	/** 4.10.6 쪽지함 정보 오류 */
//	, NOTE_INCORRECT_MBOX_INFO_ERROR(7452, HttpStatus.BAD_REQUEST, "note.error.service.incorrect_mbox_info")
//
//	/** 4.10.13 쪽지 목록 */
//	, NOTE_MY_GET_NOTE_LIST_ERROR(7413, HttpStatus.BAD_REQUEST, "note.error.controller.getNoteList")
//
//	/** 4.10.14 전체 쪽지함 카운트 */
//	, NOTE_MY_GET_ALL_MBOX_COUNT_ERROR(7414, HttpStatus.BAD_REQUEST, "note.error.controller.getAllMboxCount")
//
//	/** 4.10.15 전체 쪽지함 목록 */
//	, NOTE_MY_GET_ALL_MBOX_LIST_ERROR(7415, HttpStatus.BAD_REQUEST, "note.error.controller.getAllMboxList")
//
//	/*
//	 * Heart(마음) errors (7500 ~7599)
//	 */
//
//	/** 존재하지 않는 마음 종류 에러 */
//	, HEART_KIND_NOT_FOUND_ERROR(7501, HttpStatus.OK, "heart.error.heartKIndNotFound")
//
//	/** 존재하지 않는 마음 아이디 에러 */
//	, HEART_ID_NOT_FOUND_ERROR(7502, HttpStatus.OK, "heart.error.heartIdNotFound")
//
//	/** 존재하지 않는 발신자의 사용자 일련번호 에러 */
//	, HEART_SNDR_NOT_FOUND_ERROR(7503, HttpStatus.OK, "heart.error.sndrNotFound")
//
//	/** 존재하지 않는 수신자의 사용자 일련번호 에러 */
//	, HEART_RCVR_NOT_FOUND_ERROR(7504, HttpStatus.OK, "heart.error.rcvrNotFound")
//
//	/** 본인 전송 에러 */
//	, HEART_SEND_SELF_ERROR(7505, HttpStatus.OK, "heart.error.send.self")
//
//	/** 수신자 정보 누락 에러 (수신자의 사용자 일련번호와 핸드폰 번호 중 하나는 필수) */
//	, HEART_SEND_RCVR_REQUIRE_ERROR(7506, HttpStatus.OK, "heart.error.send.rcvrRequire")
//
//	/** 익명시 사용할 이름 필수 에러 */
//	, HEART_SEND_ANONY_NICK_REQUIRE_ERROR(7507, HttpStatus.OK, "heart.error.send.anonyNickRequire")
//
//	/** 전송시 익명 차단 에러 */
//	, HEART_SEND_BLOCK_ANONY_ERROR(7508, HttpStatus.OK, "heart.error.send.blockAnony")
//
//	/** 전송시 수신 차단 에러 */
//	, HEART_SEND_BLOCK_NOT_FRIEND_ERROR(7509, HttpStatus.OK, "heart.error.send.blockNotFriend")
//
//	/** 전송시 발신자 차단 에러 */
//	, HEART_SEND_BLOCK_SNDR_ERROR(7510, HttpStatus.OK, "heart.error.send.blockSndr")
//
//	/** 본인이 수신자가 아닌 마음 답장 하기 에러 */
//	, HEART_REPLY_NOT_MY_RECEIPT_ERROR(7511, HttpStatus.OK, "heart.error.reply.notMyReceipt")
//
//	/** 본인이 수신자가 아닌 마음 삭제 에러 */
//	, HEART_DESTROY_NOT_MY_RECEIPT_ERROR(7512, HttpStatus.OK, "heart.error.destory.notMyReceipt")
//
//	/** 본인 차단 에러 */
//	, HEART_BLOCK_SELF_ERROR(7513, HttpStatus.OK, "heart.error.block.self")
//
//	/** 이미 차단된 발신자 재차단 에러 */
//	, HEART_BLOCK_REBLOCK_ERROR(7514, HttpStatus.OK, "heart.error.block.reblock")
//
//	/** 본인 차단 해제 에러 */
//	, HEART_UNBLOCK_SELF_ERROR(7515, HttpStatus.OK, "heart.error.unblock.self")
//	
//
//	
//	/*
//	 * Conbox(모임컨텐츠함) errors (7600 ~ 7699)
//	 */
//	
//	/** 모임 컨텐츠함 모임장 여부 오류(모임장이 아닐시) */
//	, CONTENTSBOX_EXISTMASTER(7600, HttpStatus.OK, "contentsbox.error.existmaster")
//	
//	/** 모임 컨텐츠함 생성 오류 */
//	, CONTENTSBOX_CREATECB(7601, HttpStatus.BAD_REQUEST, "contentsbox.error.createCB")
//	
//	/** 모임 컨텐츠함 목록조회 오류 */
//	, CONTENTSBOX_LIST(7602, HttpStatus.OK, "contentsbox.error.list")
//	
//	/** 모임 컨텐츠함 찾기 실패 */
//	, CONTENTSBOX_NOT_FOUND(7603, HttpStatus.OK, "constatuses.error.consboxNotFound")
//	
//	/** 모임 컨텐츠함 수정 오류 */
//	, CONTENTSBOX_UPDATE(7604, HttpStatus.BAD_REQUEST, "contentsbox.error.update")
//
//	/** 모임 컨텐츠함 삭제 오류 */
//	, CONTENTSBOX_DELETE(7605, HttpStatus.BAD_REQUEST, "contentsbox.error.delete")
//
//	/** 모임 이야기/컨텐츠함 꾸미기 중복 등록 체크 */
//	, CONTENTSBOX_CREATE_INTRO_CHK(7606, HttpStatus.OK, "contentsbox.error.createIntroChk")
//	
//	/** 모임 이야기/컨텐츠함 꾸미기 등록 이미지 체크 */
//	, CONTENTSBOX_CREATE_INTRO_IMG_CHK(7607, HttpStatus.OK, "contentsbox.error.createIntroImgChk")
//
//	/** 모임 이야기/컨텐츠함 꾸미기 소개 영역 종류 코드값 체크 */
//	, CONTENTSBOX_INTRO_KIND_CHK(7608, HttpStatus.OK, "contentsbox.error.introKindChk")
//	
//	/** 모임 이야기/컨텐츠함 꾸미기 찾기 실패 */
//	, CONTENTSBOX_INTRO_NOT_FOUND(7609, HttpStatus.OK, "contentsbox.error.introNotFound")
//	
//	/** 비공개 모임컨텐츠함 입니다 */
//	, CONTENTSBOX_CONFIDENTIAL(7610, HttpStatus.OK, "contentsbox.error.confidential")
//	
//	/** 모임 컨텐츠함 순서저장 오류 */
//	, CONTENTSBOX_ORDERSAVE(7611, HttpStatus.BAD_REQUEST, "contentsbox.error.ordersave")
//	
//	/** 모임 컨텐츠함 순서저장 데이타 없음 */
//	, CONTENTSBOX_ORDERSAVE_NODATA(7612, HttpStatus.OK, "contentsbox.error.nodata")
//	
//	/*
//	 * ConStatuses(모임컨텐츠함_게시글) errors (7700 ~ 7799)
//	 */
//	
//	/** 모임컨텐츠함 게시글 쓰기 오류 (7701)  */
//	
//	/** 모임내 모임컨텐츠함 전체글 보기 오류  */
//	, CONSTATUSES_WTERTOTALLIST(7702, HttpStatus.OK, "constatuses.error.wtertotallist")
//	
//	/** 특정 모임컨텐츠함 글 목록 보기 오류 */
//	, CONSTATUSES_WTERLIST(7703, HttpStatus.OK, "constatuses.error.wterlist")
//	
//	/** 모임컨텐츠함 게시글 쓰기 권한 체크 */
//	, CONSTATUSES_AUTH_CHK(7704, HttpStatus.OK, "constatuses.error.authChk")
//	
//	/** 모임컨텐츠함 게시글 수정/삭제 권한 체크 */
//	, CONSTATUSES_SELF_AUTH_CHK(7705, HttpStatus.OK, "constatuses.error.selfAuthChk")
//	
//	/** 모임컨텐츠함 게시글 첨부파일 개수 제한 */
//	, CONSTATUSES_FILE_CNT_CHK(7706, HttpStatus.OK, "constatuses.error.fileCntChk")
//	
//	/** 모임컨텐츠함 게시글 첨부파일 수정 체크 */
//	, CONSTATUSES_FILE_MODIFY_CHK(7707, HttpStatus.OK, "constatuses.error.fileModifyChk")
//	
//	/** 모임컨텐츠함 게시글 첨부파일 수정 체크 */
//	, CONSTATUSES_WTEREXISTS_CHK(7708, HttpStatus.OK, "constatuses.error.wterExistsChk")
//	
//	/*
//	 * ConHeart(모임컨텐츠함_마음) errors (7800 ~ 7899)
//	 */
//	/** 컨텐츠함 마음 등록 제한 체크 */
//	, CONHEART_SEND_CNT_CHK(7800, HttpStatus.OK, "conheart.error.sendCntChk")
//	
//	/*
//	 * ThirdParty(3rd party) errors (7900 ~ 7999)
//	 */
//	/** DC인사이드 오늘의 와글 멤버 조회 오류 */
//	, DC_TODAY_MEMBER_NOT_FOUND(7900, HttpStatus.OK, "thirdparty.error.todayMemberNotFound")
//	
//	
//	///////////////////////////////////////프린세스 메이커////////////////////////////////////////
//	
//	/** 프린세스 메이커 인증값이 틀립니다. */
//	, PM_ACCESSTOKEN_EXIST_ERROR(8099, HttpStatus.OK, "pm.accesstoken.exist.error")
//	
//	/** 프린세스 메이커  이야기 글 작성 에러. */
//	, PM_STATUSES_UPDATE_ERROR(8301, HttpStatus.INTERNAL_SERVER_ERROR, "pm.statuses.error.update")
	
	
	

	/*
	 * 시스템 (999)
	 */

	/** 시스템 점검 */
	, SYSTEM_MAINTAINANCE(999, HttpStatus.OK, "system.maintainance.message");

	/*
	 * 여기서 부터는 수정하지 마세요
	 */

	private final int value; // 결과 코드
	private final HttpStatus httpStatus;// HTTP 상태 코드
	private final String messageCode; // 메시지 코드

	/**
	 * @param value
	 *            결과 코드
	 * @param httpStatus
	 *            HTTP 상태
	 * @param messageCode
	 *            메시지 코드
	 */
	private PortfolioResultCode(int value, HttpStatus httpStatus, String messageCode) {
		Assert.notNull(httpStatus, "HttpStatus must not be null");
		Assert.notNull(messageCode, "MessageCode must not be null");
		this.value = value;
		this.httpStatus = httpStatus;
		this.messageCode = messageCode;
	}

	/**
	 * 결과 코드
	 */
	public int value() {
		return this.value;
	}

	/**
	 * HTTP 상태
	 */
	public HttpStatus httpStatus() {
		return this.httpStatus;
	}

	/**
	 * 메시지 코드
	 */
	public String messageCode() {
		return messageCode;
	}

	/**
	 * Create new {@link PortfolioResultMessage}
	 */
	public PortfolioResultMessage message() {
		return new PortfolioResultMessage(this);
	}

	/**
	 * Raise {@link PortfolioException}
	 * @return 
	 * 
	 * @throws PortfolioException
	 */
	public PortfolioResultCode raise() throws PortfolioException {
		message().raise();
		return null;
	}
//	public void raise() throws PortfolioException {
//		message().raise();
//	}

	/**
	 * Raise {@link PortfolioException}
	 * 
	 * @param cause
	 *            the cause
	 * @throws PortfolioException
	 */
	public void raise(Throwable cause) throws PortfolioException {
		message().raise(cause);
	}

	/**
	 * @see java.lang.Enum#toString()
	 */
	@Override
	public String toString() {
		return Integer.toString(value);
	}

	/**
	 * Return the enum constant of this type with the specified numeric value.
	 * 
	 * @param resultCode
	 *            the numeric value of the enum to be returned
	 * @return the enum constant with the specified numeric value
	 * @throws IllegalArgumentException
	 *             if this enum has no constant for the specified numeric value
	 */
	public static PortfolioResultCode valueOf(int resultCode) {
		for (PortfolioResultCode code : values()) {
			if (code.value == resultCode) {
				return code;
			}
		}
		throw new IllegalArgumentException("No matching constant for [" + resultCode + "]");
	}

}